package com.pinyoumei.app.activity;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.FragmentActivity;
import android.util.AttributeSet;
import android.view.View;

import com.pinyoumei.app.utils.AppManager;
import com.pinyoumei.app.utils.StatusBarUtils;
import com.pinyoumei.app.view.LoadingDailog;
import com.google.gson.Gson;
import com.lzy.okgo.OkGo;

/**
 * 基类的Activity
 */
public class BaseActivity extends FragmentActivity{

    protected Context mContext;
    protected Activity mActivity;
    public Gson gson;
    public LoadingDailog loadingDailog;


    @Override
    public View onCreateView(String name, Context context, AttributeSet attrs) {
        mContext = context;
        mActivity = this;
        return super.onCreateView(name, context, attrs);
    }



    /**
     * activity堆栈管理
     */
    protected AppManager appManager = AppManager.getInstance();
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        //当FitsSystemWindows设置 true 时，会在屏幕最上方预留出状态栏高度的 padding
        StatusBarUtils.setRootViewFitsSystemWindows(this,true);
        //设置状态栏透明
        StatusBarUtils.setTranslucentStatus(this);
        //一般的手机的状态栏文字和图标都是白色的, 可如果你的应用也是纯白色的, 或导致状态栏文字看不清
        //所以如果你是这种情况,请使用以下代码, 设置状态使用深色文字图标风格, 否则你可以选择性注释掉这个if内容
        if (!StatusBarUtils.setStatusBarDarkTheme(this, true)){
            //如果不支持设置深色风格 为了兼容总不能让状态栏白白的看不清, 于是设置一个状态栏颜色为半透明,
            //这样半透明+白=灰, 状态栏的文字能看得清
            StatusBarUtils.setStatusBarColor(this,0x55000000);
        }
        // 添加activity 到栈
        appManager.addActivity(this);

        gson = new Gson();
        LoadingDailog.Builder builder = new LoadingDailog.Builder(this)
                .setMessage("加载中...")
                .setCancelable(true);
        loadingDailog = builder.create();
    }
    @Override
    protected void onDestroy(){
        super.onDestroy();
        if (loadingDailog!=null){
            loadingDailog.dismiss();
        }

        //页面关闭取消网络请求
        OkGo.getInstance().cancelAll();
        // 从栈中移除activity
        appManager.removeActivity(this);
    }
}
